package com.ftg.learn.chapter17;

import java.io.File;
import java.io.IOException;

/**
 * 复习 一下方法
 *  -- 1-100累加和
 * @author KangJx
 * @date 2021/8/4
 */
public class LearnMethod {

    /**
     * 求1-N 的累加和
     *
     * @param n 参数(形参)
     * @return
     */
    public int sum(int n) {
        int begin = 1;
        if (n <= begin) {
            throw new IllegalArgumentException("n不能小于1");
        }
        int sum = 0;
        for (; begin <= n; begin++) {
            sum += begin;
        }
        return sum;
    }

    //使用第二种方式完成

    /**
     * 面向对象 : 类模板 方法跟属性
     * -- 想使用方法来完成
     * 有些循环题 ，可以采用面向对象的方式来完成
     * --  在一个方法里面调用另外一个方法
     * --  在一个方法里面发现对自己的调用，我们把这种方法 递归
     * -- 递归的性能非常优秀？ 10000 占用大量内存?从空间角度来讲，差,非常容易造成内存溢出
     * -- 数据结构 ： 递归... 来完成: 无级别的
     * -- 递归不是用循环来做的！
     * -- 通过方法的返回值来进行处理
     *
     * 规范 ： 结果条件 return 常数  结果
     */
    public int sum1(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n + sum1(n - 1);
        }

    }


    //io - file d:里面所有文件的名称？
    //java .io .file 代表了实际 电脑当中的文件   文件 夹 抽象有可能存有可能不存在
    //抽象 这个文件 不存在同学位
    //里面所有文件 的名称
    public void createFile() {
        File f = new File("D:\\gitee");
        System.out.println(f.exists());
        //返回回当前目标（e:\gitee） 下面所有文件（文件 |文件 夹）
        File[] fs = f.listFiles();
        for (File f1 : fs) {
            if (f1.isFile()) {
                System.out.println(f1.getName());
            } else {
                File[] fs1 = f1.listFiles();
                for (File f2 : fs1) {
                    if (f2.isFile()) {
                        System.out.println(f2.getName());
                    }else{

                    }
                }
            }
        }
    }
}